package logika;

/* Soubor je ulozen v kodovani UTF-8.
 * Kontrola kódování: Příliš žluťoučký kůň úpěl ďábelské ódy. */

/*******************************************************************************
 * Tato třída představuje příkaz mluv. Umožňuje hovořit s postavami.
 *
 * @author    Tomáš Koválik
 * @version   1.0
 */
public class PrikazMluv implements IPrikaz
{
    //== Datové atributy (statické i instancí)======================================
    private static final String NAZEV = "mluv";
    private HerniPlan plan;
    //== Konstruktory a tovární metody =============================================

    /***************************************************************************
     *  Konstruktor vytvoří příkaz.
     *  
     *  @param    plan, odkaz na HerniPlan.
     */
    public PrikazMluv(HerniPlan plan)
    {
        this.plan = plan;
    }

    //== Nesoukromé metody (instancí i třídy) ======================================
    /**
     * Metoda provede příkaz mluv. Po zavolání metody se vrátí text, který je nastavený u dané postavy.
     */
    public String proved(String...parametry){
        if (parametry.length == 0){
            return "S kým mám mluvit?? Zadej jméno postavy...";
        }

        String jmeno = parametry[0];
        Prostor aktualniProstor = plan.getAktualniProstor();
        Postava postava = aktualniProstor.najdiPostavuVMistnosti(jmeno);
        if (postava == null) {
            return "Tato postava tu není...";
        }
        else {
            return postava.getMluveni();
        }
    }

    /**
     *  Metoda vrací název příkazu (slovo které používá hráč pro jeho vyvolání)
     *  
     *  @ return nazev prikazu
     */
    @Override
    public String getNazev() {
        return NAZEV;
    }
}